Skip to content

Commit 215d7e6

Browse files
committed
v50beta6
1 parent 5d9c955 commit 215d7e6

17 files changed

+4685
-0
lines changed
Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
/*
2+
3+
*************************************
4+
***** SmartHome v5.0 beta 6 *****
5+
*************************************
6+
7+
=======================================================
8+
Prerequisiti:
9+
- Cambiare in libraries/PubSubClient/src/PubSubClient.h
10+
#define MQTT_MAX_PACKET_SIZE 512
11+
=======================================================
12+
13+
Testato con:
14+
Arduino IDE : -> 1.8.9
15+
ESP8266 Core: ESP8266 Community versione -> 2.5.0
16+
Scheda : Generic ESP8266 Module, 80 MHz, 26 MHz, 40MHz, Flash Mode (tabella sotto), Flash Size (tabella sotto), v2 Lower Memory, Only Sketch
17+
18+
Settaggi Flash Mode e Flash Size di Arduino IDE:
19+
Nodemcu -> Flash Mode:DIO Flash Size:4M
20+
ESP01 -> Flash Mode:DIO Flash Size:1M
21+
Electrodragon -> Flash Mode:DIO Flash Size:4M
22+
Hipposwitch -> Flash Mode:DIO Flash Size:4M
23+
GC -> Flash Mode:DIO Flash Size:2M
24+
SONOFFDUAL -> Flash Mode:QIO Flash Size:1M
25+
SONOFF 4CH PRO R2 -> Flash Mode:DOUT Flash Size:1M oppure Scheda: ESP8285
26+
Shelly1 -> Flash Mode:DIO Flash Size:2M
27+
Shelly2 -> Flash Mode:DIO Flash Size:2M
28+
BlitzWolf -> Flash Mode:DIO Flash Size:1M
29+
DE004 -> Flash Mode:DIO Flash Size:1M
30+
31+
GPIO CONSIGLIATI:
32+
Nodemcu ESP01 Elctrodragon Hipposwitch Shelly1 Shelly2 SONOFFDUAL SONOFF4CHPROR2
33+
OUT1 12 0 12 12 4 4 14 12
34+
OUT2 13 2 13 14 - 5 15 5
35+
OUT3 - - - - - - - 4
36+
OUT4 - - - - - - - 15
37+
IN1 4 1 4 ? 5 12 4 0
38+
IN2 5 3 5 ? - 14 5 9
39+
IN3 - - - - - - - 10
40+
IN4 - - - - - - - 14
41+
GPIO Status_LED 16 4 16 15 16 16 13 13
42+
Inv. Status_LED 1 1 0 0 1 1 1 1
43+
Inv. RELE 1 1 0 0 0 0 0 0
44+
PullUp ? PullUp PullUp PullUp PullUp
45+
46+
PullUp -> resistenza verso vcc, GPIO che chiude verso gnd
47+
PullDown -> resistenza verso gnd, GPIO che chiude verso vcc
48+
49+
Comandi MQTT verso il topic nodo Tapparella:
50+
su - alza la Tapparella
51+
giu - abbassa la Tapparella
52+
stop - ferma la Tapparella
53+
+XX - alza la Tapparella in percentuale del tempo Tapparella (XX=percentuale)
54+
-XX - abbassa la Tapparella in percentuale del tempo Tapparella (XX=percentuale)
55+
t=XX - tempo Tapparella (XX=tempo massimo di eccitazione rele)
56+
l=XX - lock (XX=0 -> funzionamento normale (unlock) - XX=1 modo lock(i comandi MQTT ricevuti vengono ignorati))
57+
%=XX - porta la Tapparella alla percentuale XX
58+
stato - restituisce lo stato del nodo e dei relativi rele
59+
60+
Comandi MQTT verso il topic nodo Interruttore:
61+
on - eccita il relè
62+
off - diseccita il relè
63+
toggle - inverte lo stato del rele
64+
stato - restituisce lo stato del nodo e dei relativi rele
65+
66+
Comandi MQTT verso il topic nodo Impulso:
67+
on - eccita il relè (per un tempo impostato nel firmware)
68+
stato - restituisce lo stato del nodo e dei relativi rele
69+
70+
Comandi MQTT verso il topic nodo Temporizzatore:
71+
on - eccita il relè (per un tempo impostabile a piacimento)
72+
t=XX - tempo eccitazione rele (XX=tempo dopo il quale il relè viene diseccitato)
73+
stato - restituisce lo stato del nodo e dei relativi rele
74+
75+
Comandi MQTT verso il topic nodo Termostato:
76+
read - restituisce la Termostato
77+
on - eccita il relè del termostato
78+
off - diseccita il relè del termostato
79+
auto - setta modalità automatica
80+
man - setta modalità manuale
81+
t=XX - Termostato termostato (XX=Termostato)
82+
stato - restituisce lo stato del nodo e dei relativi rele
83+
84+
Comandi MQTT verso il topic nodo Sensore:
85+
stato - restituisce lo stato del nodo
86+
87+
Comandi MQTT verso il topic nodo Power:
88+
stato - restituisce lo stato del nodo
89+
CXX - Calibra dispositivo (XX=Watt di calibrazione)
90+
91+
Comandi MQTT verso il topic ACK
92+
ack - interroga tutti i nodi presenti
93+
info - tutti i nodi restituiscono alcune info
94+
95+
Comandi MQTT verso qualsiasi nodo
96+
reset - resetta nodo + cancella EEPROM nodo
97+
reboot - riavvia il nodo
98+
*/
99+
100+
#include "SmartHome_config.h"
101+
102+
#define ACK_Topic "ack" // ACK_Topic (NON MODIFICARE!!!!!)
103+
#define MinFreeHeap 10000
104+
#define TEMPO_CLICK_ON 10
105+
#define TEMPO_CLICK_OFF 5
106+
#define TEMPO_REFRESH_CONNESSIONI 60000
107+
#define MAX_RETRY_CONNESSIONI 10
108+
//#define RESET_GIORNALIERO
109+
110+
String Versione = "5.0beta6";
111+
uint8_t mac[6];
112+
int t = 0;
113+
unsigned long start_millis;
114+
115+
void setup() {
116+
#ifdef DEBUG
117+
Serial.begin(115200);
118+
// Serial.setDebugOutput(true);
119+
Show_vesione();
120+
#endif
121+
#ifdef DEBUG1
122+
Serial1.begin(115200);
123+
// Serial1.setDebugOutput(true);
124+
Show_vesione();
125+
#endif
126+
Check_flash_chip_configuration();
127+
setup_EEPROM();
128+
setup_Status_LED();
129+
130+
#if Tapparella_nodi>0
131+
setup_Tapparella();
132+
#endif
133+
#if Termostato_nodi>0
134+
setup_Termostato();
135+
#endif
136+
#if Interruttore_nodi>0
137+
setup_Interruttore();
138+
#endif
139+
#if Impulso_nodi>0
140+
setup_Impulso();
141+
#endif
142+
#if Temporizzatore_nodi>0
143+
setup_Temporizzatore();
144+
#endif
145+
#if Sensore_nodi>0
146+
setup_Sensore();
147+
#endif
148+
#if Display_nodi>0
149+
setup_Display();
150+
#endif
151+
#if Power_nodi>0
152+
setup_Power();
153+
#endif
154+
155+
setup_wifi();
156+
setup_MQTT();
157+
#ifdef WEB_SERVER
158+
setup_web();
159+
#endif
160+
#ifdef TELNET_DEBUG
161+
setup_telnet();
162+
#endif
163+
}
164+
165+
void loop() {
166+
loop_Status_LED();
167+
loop_check_low_memory();
168+
#ifdef RESET_GIORNALIERO
169+
loop_reset_giornaliero();
170+
#endif
171+
172+
#if Tapparella_nodi>0
173+
loop_Tapparella();
174+
#endif
175+
#if Termostato_nodi>0
176+
loop_Termostato();
177+
#endif
178+
#if Interruttore_nodi>0
179+
loop_Interruttore();
180+
#endif
181+
#if Impulso_nodi>0
182+
loop_Impulso();
183+
#endif
184+
#if Temporizzatore_nodi>0
185+
loop_Temporizzatore();
186+
#endif
187+
#if Sensore_nodi>0
188+
loop_Sensore();
189+
#endif
190+
#if Display_nodi>0
191+
loop_Display();
192+
#endif
193+
#if Power_nodi>0
194+
loop_Power();
195+
#endif
196+
197+
loop_wifi();
198+
loop_MQTT();
199+
#ifdef WEB_SERVER
200+
loop_web();
201+
#endif
202+
#ifdef TELNET_DEBUG
203+
loop_telnet();
204+
#endif
205+
}
206+
207+
#if (defined(PullUp) and defined(PullDown)) or (!defined(PullUp) and !defined(PullDown))
208+
#error In SmartHome_config.h definire correttamete PullUp o PullDown per i GPIO
209+
#endif
210+
211+
#if (defined(SONOFFDUAL) and defined(ESP01_SERIAL_RELE))
212+
#error In SmartHome_config.h definire solo un dispositivo con GPIO non standard (SONOFFDUAL o ESP01_SERIAL_RELE)
213+
#endif
214+
215+
#if (defined(SONOFFDUAL) or defined(ESP01_SERIAL_RELE))
216+
#undef DEBUG
217+
#endif
218+
219+
#if (Power_nodi>0 and Power1_device == 1 and defined(DEBUG))
220+
#error PZEM-004 non può usare il serial DEBUG
221+
#endif
222+
223+
#if (Tapparella_nodi>5 or Interruttore_nodi>10 or Impulso_nodi>10 or Termostato_nodi>1 or Temporizzatore_nodi>10 or Sensore_nodi>10 or Display_nodi>1 or Power_nodi>1)
224+
#error Nodi definiti in numero errato
225+
#endif
226+
227+
#if Impulso_nodi<1
228+
#undef Impulso1_NFC
229+
#endif
2.48 MB
Binary file not shown.

0 commit comments

Comments
 (0)