Home › Forum › Discussioni su problematiche generali › Come interfacciarsi via WiFi con i moduli Sonoff della Itead
- Questo topic ha 8 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 4 anni, 10 mesi fa da Marcello.
-
AutorePost
-
Gennaio 25, 2018 alle 3:41 pm #36171PaoloPartecipante
In una abitazione hanno installato alcuni moduli Sonoff, in particolare il Sonoff Basic WiFi Wireless Switch che sono collegati alla rete WiFie poi possono essere comandati tramite un applicazione con Android.
Volevo installare un CMT_SVR ed un CMT-IV5 e programmare alcune pagine con le varie stanze della casa ma non conosco il protocollo di comunicazione del Sonoff. Sapete darmi qualche informazione ?
Gennaio 26, 2018 alle 9:05 am #40025Sergio BertanaAmministratore del forumVedo che hanno la gestione del protocollo MQTT ma non sinceramente non ho trovato informazioni su come configurare questi moduli per poterli gestire tramite i nostri sistemi programmabili SlimLine.
Mi sono però cimentato con l’IDE di sviluppo ed ho realizzato un nuovo firmware che ne permette la gestione da una SlimLine. Ho anche realizzato un FB dedicato, è un lavoro che ho svolto per divertimento ed è pubblicato nella zona delle Knowledge sul nostro sito.
Maggio 31, 2019 alle 6:11 am #47942MarcelloPartecipanteHo seguito passo-passo le procedure indicate nelle Knowledge “Gestire Sonoff con ESPurna firmware da SlimLine” e in “Gestire dispositivo Sonoff da SlimLine”, purtroppo senza risultato.
Nel primo il modulo non genera la “wifi” quindi non posso connettermi alla pagina delle impostazioni, nel secondo nonostante abbia modificato i parametri della WiFi SSID, Passw, IP, ecc… il modulo non viene riconosciuto. L’unica cosa che ho notato è che il led del dispositivo (Sonoff Basic) non lampeggia.
Aggiungo che nella versione ESPurna ho installato il binario espurna-1.13.5-itead-sonoff-rf.bin come indicato negli esempi e che sia con ESP8266Flasher (primo caso) che con Arduino, al termine dell’upload, non vengono segnalati errori.
Da cosa può dipendere?
Maggio 31, 2019 alle 6:29 am #47947Sergio BertanaAmministratore del forumTi consiglio di utilizzare il firmware ESPurna che è il più completo e ti permette di gestire il dispositivo anche con la sua pagina web.
Il tuo problema è nella procedura di flashing del dispositivo devi impostare correttamente lo SPI Mode nella configurazione Advanced del programma NodeMCU. Ci sono 4 possibili selezioni (Qui trovi spiegazioni al riguardo).
Avevo avuto anch’io un problema nel falshing del modulo, ma poi agendo sulle selezioni avevo trovato quella corretta, purtroppo non mi ricordo più quale avevo utilizzato. Magari quando hai risolto scrivi sul forum.
Giugno 3, 2019 alle 6:16 am #47968MarcelloPartecipanteRISOLTO:
Innanzi tutto il file .BIN è :espurna-1.13.5-itead-sonoff-basic.bin e lo SPI Mode è: DOUT, gli altri parametri in Advanced sono quelli di default.Ho abilitato anche Telnet ma non conosco i comandi per provare da Toolly l’on/off del modulo, voi li avete?
Giugno 9, 2019 alle 7:42 pm #48037Sergio BertanaAmministratore del forumUn elenco lo puoi trovare qui, quando ti connetti in Telnet puoi dare il comando help per visualizzare tutti i possibili comandi, ecco il report.
Available commands:
> COMMANDS
> CONFIG
> CRASH
> DEL
> DICTIONARIES
> EEPROM
> EEPROM.DUMP
> ERASE.CONFIG
> FACTORY.RESET
> FLASH.DUMP
> GET
> GPIO
> HA.CLEAR
> HA.CONFIG
> HA.SEND
> HEAP
> HELP
> INFO
> KEYS
> MQTT.RESET
> OTA
> PUBLISH
> RELAY
> RELOAD
> RESET
> RESET.SAFE
> SELECT
> SET
> STACK
> SUBSCRIBE
> UNSUBSCRIBE
> UPTIME
> WIFI
> WIFI.AP
> WIFI.RESET
> WIFI.SCANGiugno 13, 2019 alle 4:39 pm #48137MarcelloPartecipanteHo provato anche altri tipi di Firmware, quello della ESpurna ha il “limite” di chiedere il codice API per inviare i comandi. Ho trovato in rete TASMOTA che ha il vantaggio di ricevere l’on/off con semplice interfaccia REST. Volevo utilizzare il FB HTTPClient per passare il comando di on/off che dal browser invio così:
http://192.168.0.9/cm?cmnd=Power%20TOGGLE
Ho configurato la mia FB così: IF (SysFirstLoop) THEN HTTP.SpyOn:=TRUE; (* Activate the spy *) HTTP.Method:=2; (* Request method, PUT *) HTTP.HostAddress:=ADR('192.168.0.9'); (* SonOff device *) HTTP.HostName:=ADR('192.168.0.9'); (* Hostname *) HTTP.HostPort:=80; (* Server port *) HTTP.Page:=ADR('/cm'); (* Web page *) HTTP.Request:=ADR('cmnd=Power%20TOGGLE'); (* Request string *) HTTP.DBSize:=256; (* Data buffer size *) HTTP.Timeout:=60000; (* Execution timeout *) END_IF
ma spiando con toolly ottengo questo risultato:
21:43:41( 384)|Tx|PUT //cm HTTP/1.1.. 21:43:41(.130)|Rq|cmnd=Power%20TOGGLE 21:43:41(.000)|Rx|HTTP/1.1 404 Not Found.. 21:43:41(.001)|Lg|Start Rx page, length:72 21:43:41(.002)|Rx|[72] File Not Found..URI: //cm *** s: 1. cmnd: Power TOGGLE. 21:43:41(.061)|Pi|Page length: 72 Page load time: 0.196 (S)
e ovviamente al relè non capita nulla.
Cosa posso fare? (ho provato anche con POST e GET ma non cambia il risultato)Giugno 13, 2019 alle 4:51 pm #48140Sergio BertanaAmministratore del forumSicuramente è possibile realizzare il comando con il FB HTTPClient.
Intanto vedo che il comando è in GET, quindi usa, HTTP.Method:=0;
La pagina da chiamare è cm quindi prova ad usare, HTTP.Page:=ADR(‘cm’);
%20 è la codifica di space, provvede l’FB a codificarlo prova,HTTP.Request:=ADR(‘cmnd=Power TOGGLE’)Giugno 14, 2019 alle 6:35 am #48143MarcelloPartecipanteL’errore stava proprio sulla Webpage mi era sfuggita “/”.
Ho visto anche che dopo circa 75 sec il tempo di risposta del relè si allunga fino alla soglia di timeout. Se si vuole il relè sempre pronto, ogni 60 sec reinvio il comando di stato sostituendo TOGGLE con ON o OFF. Riprendendo il tuo programma ho modificato IF (Relay) <> (RStarus) OR SysTime-timeStart > 60000 THEN …
timeStart viene ricaricato con SysTime ad ogni invio comando.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.